Skip to content

feat(perps): add breakdown-perps-tickets skill#57

Merged
abretonc7s merged 1 commit into
mainfrom
perps/breakdown-tickets-skill
Jun 29, 2026
Merged

feat(perps): add breakdown-perps-tickets skill#57
abretonc7s merged 1 commit into
mainfrom
perps/breakdown-tickets-skill

Conversation

@abretonc7s

Copy link
Copy Markdown
Contributor

What

Adds the breakdown-perps-tickets skill: turns one perps bug/EPIC into the minimum set of dispatch-ready technical tickets, routed across Core → Core-release → Mobile → Extension with real Jira blocking links.

This is the second pass in the team flow — the PM states what's broken/expected (no implementation), and this skill (engineer side) does the technical breakdown + routing into agent-ingestible tickets consumed by farmslot and the agentic/recipe-fix-ticket pipeline.

Why these design choices

  • Confirms repo paths up front. Triage is done from the code, so the skill asks for the Core/Mobile/Extension checkout locations before analyzing instead of assuming — paths differ per machine and reviewer checkouts often live at *-ref. Nothing machine-specific leaks into the tickets.
  • Numbered, proof-mode-tagged ACs ([state]/[visual]/[mixed]). The downstream worker (recipe-fix-ticket) builds an AC matrix with exactly these proof modes — tagging at authoring time removes a guess step at fix time.
  • Layer model + interim-constant pattern. Catches hidden Core deps (most often new analytics event constants owned by @metamask/perps-controller) that make a 'client-only' task secretly Core-first.
  • Signal over noise. 2-3 sentences per field, one concern per ticket, no screenshots-as-spec — every word costs inference for the autonomous worker.

Notes

Consumes the existing domains/perps/knowledge/* references (architecture, screens, formatting-rules, mobile-extension-map) rather than duplicating them.

Interactively split a perps requirement into dispatch-ready technical
tickets routed across Core, Core-release, Mobile, and Extension.

- Confirms Core/Mobile/Extension repo paths up front (triage from code,
  no hardcoded machine-specific paths)
- Emits the minimum layer set with Jira blocks/is-blocked-by chaining
  and the interim-constant pattern for hidden Core deps (analytics)
- Numbered, proof-mode-tagged ACs (state/visual/mixed) that seed the
  downstream recipe-fix-ticket AC matrix directly
- Token-efficient, signal-over-noise tickets for autonomous workers
- 2-3 sentences per field, max. Cut anything an agent can derive from the code.
- One concern per ticket. Split multi-bug / multi-layer requests.
- Concrete > narrative: a route, a component, a testable assertion — not a story.
- No screenshots-as-spec, no Figma links, no "investigate and fix", no "see recording".

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why no Figma links?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

because the agent cannot access it directly

## The layer model

`@metamask/perps-controller` lives in **Core**; Mobile and Extension consume it
(`"@metamask/perps-controller": "^9.x"`). A perps change can touch up to four

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it good to have the version 9 there?

@abretonc7s abretonc7s merged commit b47245e into main Jun 29, 2026
27 checks passed
@abretonc7s abretonc7s deleted the perps/breakdown-tickets-skill branch June 29, 2026 15:55
abretonc7s added a commit that referenced this pull request Jun 29, 2026
## What

Adds `write-perps-ticket` — the **product (first) pass** that pairs with
`breakdown-perps-tickets` (#57, the engineering pass). It helps a PM (or
a Claude acting for one) turn a raw observation/idea/goal into **one
clean, complete ticket** that states intent and expected outcome, then
stops before implementation.

Splits the two jobs the team actually has (per the product discussion):
the PM describes *what's broken / expected* with no implementation, and
engineering does the technical split + layer routing as a second pass.

## Modes

Typed, each with its own tight format:
- **Bug** — what's broken + testable expected + repro + surface +
pre-conditions + severity
- **EPIC** — user-facing outcome + feature-level acceptance + scope
(tasks deferred to engineering)
- **Initiative** — why + measurable success metric + scope boundary +
candidate child EPICs

## Why these choices

- **Intent, not implementation.** Product tickets state testable
*outcomes* — no file paths, component names, or layer routing.
Prescribing implementation boxes engineering in and goes stale when code
moves; routing needs codebase access and belongs to the breakdown pass.
- **Surfacing section** (severity, plain-words area label, correct type)
so reported bugs get triaged instead of lost in the backlog — a direct
pain point.
- **Number semantics, not decimals.** Expected values described
semantically ("shows USD value") since perps precision is
range-adaptive.
- **Clean handoff.** Output of this skill = input to
`breakdown-perps-tickets`. Both reuse `domains/perps/knowledge/*`.

## Relation to #57

Complementary, not dependent. #57 = engineer split/route; this = PM
authoring. Merge order doesn't matter.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants